import java.io.File;
import java.io.IOException;

public class FileHomeWork {
    private static int count=0;
    private static int box=0;

    public static void main(String[] args) throws IOException {
        /*
    《作业一》
     新建一个类，写代码实现以下功能：
     1,用代码在D盘创建一个文件夹，取名叫"刘景景的测试文件夹"，
     2,在此文件夹中创建以下内容：
            4个目录，分别叫：我的视频，我的音乐，我的照片，我的文档
            3个文件，分别叫：用科幻的视角看地球.txt，爱你一万年.mp3，精忠报国.mp3
     3,在《我的文档》文件夹中创建以下文件：时间简史.txt，录取通知.txt，劳动合同.txt
       在《我的照片》文件夹中创建以下文件：凤凰山上.jpg，岐江公园.png，泉林山庄.jpg
       在《我的音乐》文件夹中创建以下文件：少年锦时.mp3，光辉岁月.mp3，心如止水.mp3
       在《我的视频》文件夹中创建以下文件：盗梦空间.avi，千与千寻.mp4，唐伯虎点蚊香.avi
     */

       /* File file1=new File("D:/刘景景的测试文件夹");
        boolean a=file1.mkdir();
        System.out.println(a);

        String[] name={"用科幻的视角看地球.txt","爱你一万年.mp3","精忠报国.mp3"};
        for (int i = 0; i < name.length; i++) {
            File file2=new File("D:/刘景景的测试文件夹/",name[i]);
            System.out.println(file2.createNewFile());
        }

        String[] name2={"时间简史.txt","录取通知.txt","劳动合同.txt"};
        for (int i = 0; i < name2.length; i++) {
            File file3=new File("D:/刘景景的测试文件夹/我的文档/",name2[i]);
            System.out.println(file3.createNewFile());
        }

        String[] name3={"凤凰山上.jpg","岐江公园.png","泉林山庄.jpg"};
        for (int i = 0; i < name3.length; i++) {
            File file4=new File("D:/刘景景的测试文件夹/我的照片/",name3[i]);
            System.out.println(file4.createNewFile());
        }

        String[] name4={"少年锦时.mp3","光辉岁月.mp3","心如止水.mp3"};
        for (int i = 0; i < name4.length; i++) {
            File file5=new File("D:/刘景景的测试文件夹/我的音乐/",name4[i]);
            System.out.println(file5.createNewFile());
        }

        String[] name5={"盗梦空间.avi","千与千寻.mp4","唐伯虎点蚊香.avi"};
        for (int i = 0; i < name5.length; i++) {
            File file6=new File("D:/刘景景的测试文件夹/我的视频/",name5[i]);
            System.out.println(file6.createNewFile());
        }*/

    /*
    《作业二》
     新建一个类，写代码实现以下功能：
     1,统计一下"刘景景的测试文件夹"中有多少个子项目(不是子孙项目)
     2,输出所有文件的名字(不算文件夹)，并统计个数。
     3,输出所有目录的名字(只算文件夹)，并统计个数。
     4,统计一下"我的视频"中有多少个文件，以及它们的名字分别是什么，其中有多少个avi格式的文件。
     5,判断一下"我的音乐"中有没有"我和我的祖国.mp3"这个文件，如果有就说有，如果没有就创建。
     */
        /*File file1=new File("D:/刘景景的测试文件夹/");
        File[] arr=file1.listFiles();
        System.out.println("D:/刘景景的测试文件夹/"+arr.length);

        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i].isFile()){
                System.out.println(arr[i].getName());
                count++;
            }
        }
        System.out.println("文件"+count);

        count=0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i].isDirectory()){
                System.out.println(arr[i].getName());
                count++;
            }
        }
        System.out.println("文件夹"+count);


        count=0;
        File file2=new File("D:/刘景景的测试文件夹/我的视频");
        File[] arr2=file2.listFiles();
        System.out.println("D:/刘景景的测试文件夹/我的视频"+arr2.length);
        //4,统计一下"我的视频"中有多少个文件，以及它们的名字分别是什么，其中有多少个avi格式的文件。
        //5,判断一下"我的音乐"中有没有"我和我的祖国.mp3"这个文件，如果有就说有，如果没有就创建。
        System.out.println(arr2);
        for (int i = 0; i < arr2.length; i++) {
            if (arr2[i].isFile()){
                System.out.println(arr2[i].getName());
                if (-1!=arr2[i].getName().indexOf("avi")){
                    count++;
                }
            }
        }
        System.out.println("avi格式的有"+count);

        File file3=new File("D:/刘景景的测试文件夹/我的音乐/我和我的祖国.mp3");
        if (file3.exists()){
            System.out.println("有这个文件");
        }else {
            System.out.println("没有该文件");
            boolean a=file3.createNewFile();
            if (a){
                System.out.println("创建该文件成功");
            }
        }*/


        // 1,下载10张图片(.jpg格式)，放在"D:/刘景景的测试文件夹/我的图片"文件夹中。
        // 2,用代码为其批量改名为"名人1.jpg", "名人2.jpg", "名人3.jpg"
        /*File file =new File("D:/刘景景的测试文件夹/我的照片");
        File[] arr=file.listFiles();
        for (int i=0;i< arr.length;i++){
            if (arr[i].getName().endsWith("png")){
                System.out.println("有png");
                arr[i].renameTo(new File("D:/刘景景的测试文件夹/我的照片/名人"+(i+1)+".png"));
            }
        }*/


        // 练习一：
        // 统计《D:/刘景景的测试文件夹》目录的子孙中，有多少个文件夹和文件。
        File file=new File("D:/刘景景的测试文件夹");
        getNum(file);
        System.out.println("文件夹"+box+"个");
        System.out.println("文件"+count+"个");
    }

    public static void getNum(File file){
        if (file.isDirectory()){
            box++;
            File[] arr=file.listFiles();
            for (int i=0;i< arr.length;i++){
                getNum(arr[i]);
            }
        }else {
            count++;
        }
    }
}
